switch (type)
{
case XEN_ELFNOTE_LOADER:
- strlcpy(parms->loader, str, sizeof(parms->loader));
+ elf_strlcpy(parms->loader, str, sizeof(parms->loader));
break;
case XEN_ELFNOTE_GUEST_OS:
- strlcpy(parms->guest_os, str, sizeof(parms->guest_os));
+ elf_strlcpy(parms->guest_os, str, sizeof(parms->guest_os));
break;
case XEN_ELFNOTE_GUEST_VERSION:
- strlcpy(parms->guest_ver, str, sizeof(parms->guest_ver));
+ elf_strlcpy(parms->guest_ver, str, sizeof(parms->guest_ver));
break;
case XEN_ELFNOTE_XEN_VERSION:
- strlcpy(parms->xen_ver, str, sizeof(parms->xen_ver));
+ elf_strlcpy(parms->xen_ver, str, sizeof(parms->xen_ver));
break;
case XEN_ELFNOTE_PAE_MODE:
if (0 == strcmp(str, "yes"))
/* strings */
if (0 == strcmp(name, "LOADER"))
- strlcpy(parms->loader, value, sizeof(parms->loader));
+ elf_strlcpy(parms->loader, value, sizeof(parms->loader));
if (0 == strcmp(name, "GUEST_OS"))
- strlcpy(parms->guest_os, value, sizeof(parms->guest_os));
+ elf_strlcpy(parms->guest_os, value, sizeof(parms->guest_os));
if (0 == strcmp(name, "GUEST_VER"))
- strlcpy(parms->guest_ver, value, sizeof(parms->guest_ver));
+ elf_strlcpy(parms->guest_ver, value, sizeof(parms->guest_ver));
if (0 == strcmp(name, "XEN_VER"))
- strlcpy(parms->xen_ver, value, sizeof(parms->xen_ver));
+ elf_strlcpy(parms->xen_ver, value, sizeof(parms->xen_ver));
if (0 == strcmp(name, "PAE"))
{
if (0 == strcmp(value, "yes[extended-cr3]"))
#define bswap_32(x) swab32(x)
#define bswap_64(x) swab64(x)
+#define elf_strlcpy(d,s,c) strlcpy(d,s,c)
+
#else /* !__XEN__ */
#include <stdio.h>
xc_set_error(XC_INVALID_KERNEL, fmt , ## args ); \
} while (0)
+/* SysV unices have no strlcpy/strlcat. */
+static inline size_t elf_strlcpy(char *dest, const char *src, size_t size)
+{
+ strncpy(dest, src, size-1);
+ dest[size-1] = '\0';
+ return strlen(src);
+}
+
#endif
#endif /* __LIBELF_PRIVATE_H_ */